/*
 +-----------------------------------------------------------------------------------------------+
 | Project : UKAPI
 +-----------------------------------------------------------------------------------------------+
 | Project Description : Universal & Kernel API
 +-----------------------------------------------------------------------------------------------+
 | File Description :
 |   Main header
 |
 +-----------------------------------------------------------------------------------------------+
 | Licence : MIT Licence
 +-----------------------------------------------------------------------------------------------+
 | Copyright (c) 2006 Olivier Vanhoucke
 |
 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software
 | and associated documentation files (the "Software"), to deal in the Software without
 | restriction, including without limitation the rights to use, copy, modify, merge, publish,
 | distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
 | Software is furnished to do so, subject to the following conditions:
 |
 | The above copyright notice and this permission notice shall be included in all copies or
 | substantial portions of the Software.
 |
 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 +-----------------------------------------------------------------------------------------------+
*/

/**
 * @mainpage UKAPI : Universal & Kernel API
 * @image html logo_small.gif
 * @version 0.001
 *
 * @section begin_sec Important Information
 * We are just beginning developpment, so documentation isn't up to date.
 * Come back in some week to see powerfull of this project!
 *
 * @section intro_sec Introduction
 * Universal & Kernel API is a set of classical algorithms for any platform : POSIX, WIN32 and NATIVE (no OS).
 *
 * UKAPI is composed of the :
 * KERNEL API (Pseudo OS API): Debug, Event, MailBox, Memory, Mutex, Time, Semaphore, Task, Memory Manager, TaskManager, Scheduler (Round Robin, Priority).
 *
 * UNI API (Universal API): Singly-linked list, Doubly-linked list, Circularly-linked list, Bit, Trees, Cache, Memory (Heap, Frames, Page, Memory Rows), Compress (Huffman, LZ77), String, State Machine, Test Unit, Math, Cover, Graph (Algorithms, DFS, BFS), Queue, Spell, Stack, Regulator, Error Check, Geo Dist, Geometry, Hash, Cryptography (Blaise Vigenere, CBC, RSA, DES).
 *
 * COMM API (Communication API): OneWire, SPI, I2S, I2C, (futur : tcp, udp, ip, http, ftp, ...)
 *
 * DB API (Database API):
 *
 * GUI API (Graphical User Interface): screen and images manipulation (BMP)
 *
 * @section documentation_sec Documentation
 *
 * @if API_SUBLAYER_WIN32
 * This documentation was generated for the WIN32 sublayer.
 * @elseif API_SUBLAYER_POSIX
 * This documentation was generated for the POSIX sublayer.
 * @elseif API_SUBLAYER_NATIVE
 * This documentation was generated for the NATIVE sublayer.
 * @endif
 *
 * @section install_sec Installation
 *
 * Download last version on Google Code Hosting : http://code.google.com/p/ukapi/ and just use it as a static library
 *
 *<center>
 *<table style="background-color: #fff; padding: 5px;" cellspacing=0 border=0>
 *  <tr><td>
 *    <img src="http://groups-beta.google.com/groups/img/3/groups_bar.gif"
 *         height=26 width=132 alt="Google Groups Beta">
 *  </td></tr>
 *  <tr><td style="padding-left: 5px;font-size: 125%">
 *    <b>ukapi</b>
 *  </td></tr>
 *  <tr><td style="padding-left: 5px">
 *    <a href="http://groups-beta.google.com/group/ukapi">Visit this group</a>
 *  </td></tr>
 *</table>
 *
 *</center>
 *
 * Actualy the project is running under Visual Studio 2005, but makefile for other compiler will be quickly done.
 *
 * @section supported_api_sec Supported API
 * <center>
 * <table cellpadding="0" cellspacing="1" border="1" width="35%" bordercolor="black">
 * <tr>
 * <td width="40%" align="center"><b>KERNEL API Name</b></td>
 * <td width="20%" align="center"><b>WIN32</b></td>
 * <td width="20%" align="center"><b>POSIX</b></td>
 * <td width="20%" align="center"><b>NATIVE</b></td>
 * </tr>
 * <tr>
 * <td>&nbsp;File</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="red">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Directory</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="red">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Time</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="red">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Memory</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Debug</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Event</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Mailbox</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Memory manager</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Mutex</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Semaphore</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Task</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Task manager</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Priority sheduler</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Round robin sheduler</td>
 * <td bgcolor="orange">&nbsp;</td>
 * <td bgcolor="orange">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * </table>
 * </center>
 *
 *
 * <center>
 * <table cellpadding="0" cellspacing="1" border="1" width="35%" bordercolor="black">
 * <tr>
 * <td width="40%" align="center"><b>UNI API Name</b></td>
 * <td width="20%" align="center"><b>WIN32</b></td>
 * <td width="20%" align="center"><b>POSIX</b></td>
 * <td width="20%" align="center"><b>NATIVE</b></td>
 * </tr>
 * <tr>
 * <td>&nbsp;Simple chained list</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Double chained list</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Circular chained list</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Heap</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Page</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Frame</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Huffman compress</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;LZ77 compress</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Queue</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Priority queue</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Bit</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Tree</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Math</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Rand</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;String</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Binary search</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Stack fifo and lifo</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Sort</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Spell</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Error check</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Set</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Hash</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Cryptography Blaise Vigenere</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Cryptography CBC</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Cryptography RSA</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Cryptography DES</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Geometry</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;State Machine</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Regulator</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Cover</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * <tr>
 * <td>&nbsp;Test Unit</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * </tr>
 * </table>
 * </center>
 *
 *
 * <center>
 * <table cellpadding="0" cellspacing="1" border="1" width="35%" bordercolor="black">
 * <tr>
 * <td width="40%" align="center"><b>GUI API Name</b></td>
 * <td width="20%" align="center"><b>WIN32</b></td>
 * <td width="20%" align="center"><b>POSIX</b></td>
 * <td width="20%" align="center"><b>NATIVE</b></td>
 * </tr>
 * <tr>
 * <td>&nbsp;Image BMP</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="green">&nbsp;</td>
 * <td bgcolor="red">&nbsp;</td>
 * </tr>
 * </table>
 * </center>
 *
 *
 * <center>
 * <table cellpadding="0" cellspacing="1" border="1" width="35%" bordercolor="black">
 * <tr>
 * <td width="40%" align="center"><b>DB API Name</b></td>
 * <td width="20%" align="center"><b>WIN32</b></td>
 * <td width="20%" align="center"><b>POSIX</b></td>
 * <td width="20%" align="center"><b>NATIVE</b></td>
 * </tr>
 * </table>
 * </center>
 *
 *
 * <center>
 * <table cellpadding="0" cellspacing="1" border="1" width="35%" bordercolor="black">
 * <tr>
 * <td width="40%" align="center"><b>COMM API Name</b></td>
 * <td width="20%" align="center"><b>WIN32</b></td>
 * <td width="20%" align="center"><b>POSIX</b></td>
 * <td width="20%" align="center"><b>NATIVE</b></td>
 * </tr>
 * </table>
 * </center>
 */

#ifndef __UKAPI__
#define __UKAPI__

/**
 * @def UKAPI_VERSION
 * @brief Version of UKAPI
 */
#define UKAPI_VERSION	"0.001"

/**
 * @def UKAPI_STATUS
 * @brief Status of UKAPI : dev, alpha, beta, release candidate, stable
 */
#define UKAPI_STATUS	"dev"

#include <configuration/configuration.h> // remove !!!!!
#include <private/types.h>
#include <private/macros.h>
#include <private/memory_class.h>
#include <private/result.h>

#include <private/debug.h>
#include <private/memory.h>

#include <private/cpu.h>
#include <private/soc.h>
#include <private/platform.h>
#include <private/application.h>
#include <private/kernel.h>
#include <private/system.h>

#endif /* __UKAPI__ */
